#ifndef CICORE_MATERIAL_H
#define CICORE_MATERIAL_H

#include <cmath>
#include <string>

#include "Color.h"

namespace CICore {
    class Material {   
    public:      

        //CONSTANTS
        static const std::string DEFAULT_MATERIAL;
       
        Material (const std::string& _name=DEFAULT_MATERIAL,        //Constructor
                  const Color& _ka=Color(0.2f, 0.2f, 0.2f), 
                  const Color& _kd=Color(0.8f, 0.8f, 0.8f),
                  const Color& _ks=Color(1.0f, 1.0f, 1.0f),
                  const float _shininess=10.f
                 );

        virtual ~Material();                                        //Destructor

        std::string name;               //The material's name
        Color ka, kd, ks;               //The material ambient, diffuse and specular values
        float shininess;                //The material shininess value
    };            
}
#endif /* CICORE_MATERIAL_H */
